home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 651-660 / 659 / gadtoolsbox / gadtoolsbox.doc next >
Text File  |  1995-03-15  |  89KB  |  1,657 lines

  1.  
  2.                       GadToolsBox 1.3 (The Sequel)
  3.  
  4.                                  v37.111
  5.  
  6.                  (c) Copyright 1991,92 Jaba Development
  7.                     Written using DICE C v2.06.40 by
  8.                             Jan van den Baard
  9.  
  10.                                User Manual
  11.                   (c) Copyright 1991,92 Jaba Development
  12.  
  13.               This program uses both the powerpacker.library
  14.                   and reqtools.library  (OS 2.0 version)
  15.            These two libraries are  (c) Copyright Nico François
  16.          and the full distribution can be found on Fish Disk 575.
  17.                                     __  __
  18.                                    / / /  \
  19.                             __    / / / /\ \
  20.                        _____\ \__/ /_/ /_/ /_____
  21.                       (__________________________)
  22.  
  23.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  24.  » How to obtain an update.                                                »
  25.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  26.  Many people have written to me asking for updates.  This kind of gotton out
  27.  of hand (it was beginning to cost me a lot of money)  so here is the way to
  28.  get an update  directly  from  me.  Send me a self addressed envelope, 1 US
  29.  dollar (EUROPE) or 2 US dollars if you don't live in europe and a 3½" disk.
  30.  Then I will send you an update as soon as it becomes available.
  31.  
  32.   Disclaimer................ 1
  33.   Copyright/Distribution.... 2
  34.   Electronic Distribution... 3
  35.   Introduction.............. 4
  36.   Requirements.............. 5
  37.   Starting GadToolsBox...... 6
  38.   Making a Gadget........... 7
  39.   Program Menus............. 8
  40.     The Project Menu........ 8.1
  41.     The Gadgets Menu........ 8.2
  42.     The Window Menu......... 8.3
  43.     The Screen Menu......... 8.4
  44.     The Menus Menu.......... 8.5
  45.   Gadget Kind Requester..... 9
  46.     The CheckBox Gadget..... 9.1
  47.     The Integer Gadget...... 9.2
  48.     The ListView Gadget..... 9.3
  49.     The Mx Gadget........... 9.4
  50.     The Cycle Gadget........ 9.5
  51.     The Palette Gadget...... 9.6
  52.     The Scroller Gadget..... 9.7
  53.     The Slider Gadget....... 9.8
  54.     The String Gadget....... 9.9
  55.     The Number Gadget....... 9.10
  56.     The Text Gadget......... 9.11
  57.     The Button Gadget....... 9.12
  58.   Menu Requesters........... 10
  59.     The Menu Requester...... 10.1
  60.     The (Sub)Item Requester. 10.2
  61.   The Generated Source...... 11
  62.   The GetFile Boopsi image.. 12
  63.   Adapt Font................ 13
  64.   Notes..................... 14
  65.   Credit.................... 15
  66.   __IMPORTANT__............. 16
  67.  
  68.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  69.  » 1) Disclaimer                                                           »
  70.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  71.  The author cannot be held liable for the  suitability or  accuracy  of this
  72.  manual  and/or  the  program(s)  it  describes.   Any  damage  directly  or
  73.  indirectly caused by the use or misuse of  this manual  and/or the  program
  74.  it describes is the sole responsibility of the user her/him self.
  75.  
  76.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  77.  » 2) Copyright/Distribution                                               »
  78.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  79.  GadToolsBox, (c) Copyright 1991,92 Jaba  Development.  All rights reserved.
  80.  This  program  is  FREEWARE  so  no financial  donations are required ( but
  81.  welcome ).  This   program   may  be  freely  distributed  as  long  as all
  82.  source  code,   documentation  and  executable(s)  remain unchanged and are
  83.  included  with the distribution.  Also no profit is to be made  by  selling
  84.  this  program. You may not charge more than  Fred Fish  does  for a  single
  85.  library disk.    When  you  use  this  program  on a  regular base  I would
  86.  appreciate  a postcard of your  home  town.  If  this  program  is used  to
  87.  create a  GadTools user interface  for  commercial  or  shareware  programs
  88.  I  would  appreciate  a  little  note   about  this  in  the  program  it's
  89.  documentation.  Commercial  distribution  is  NOT allowed  without  written
  90.  permission from the author.
  91.  
  92.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  93.  » 3) Electronic Distribution                                              »
  94.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  95.  It is allowed for non-commercial BBSs to distribute  an archive  with  only
  96.  the following files in it to save your users some  money when they  want to
  97.  download this program. NOTE: All files listed  below  MUST  be  distributed
  98.  together. None of the files listed below may be  distributed  on it's  own!
  99.  They may ofcourse be archived with LHarc or any other archiver.
  100.  
  101.     GadToolsBox             - Main Program
  102.     GadToolsBox.info        - Main Program icon.
  103.     GadToolsBox.DOC         - Main Program Manual (This file)
  104.     nofrag.library          - Shared library ( (c)1991,92 Jaba Development )
  105.     reqtools.library        -    "      "    ( (c) Nico François )
  106.     powerpacker.library     -    "      "    ( (c) Nico François )
  107.     boopsi.s                - Boopsi routine source
  108.     boopsi.o                - Boopsi routine link object code
  109.  
  110.  You may NOT upload this or any  other form of  this  software on  BBSs that
  111.  claim copyrights on the uploaded material!
  112.  
  113.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  114.  » 4) Introduction                                                         »
  115.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  116.  GadToolsBox  is a program that will save you a gigantic amount of time  and
  117.  anguish  in  creating  a  GadTools  user interface  for your programs. This
  118.  program is  a followup of  my other  source  generator  "PowerSource". It's
  119.  main purpose is to let you create  your user  interface without  having  to
  120.  type  in  the  necessary  code  and  structures  yourself.  This version of
  121.  GadToolsBox has the following features:
  122.  
  123.     -:  A complete intuition/gadtools user interface
  124.     -:  Editing on many different screen resolutions
  125.     -:  Editing/Generating source on/for big autoscrolling screens
  126.     -:  All GadTools gadget kinds supported + a custom gadget
  127.     -:  GadTools menus supported
  128.     -:  Full control over the window flags and most tags
  129.     -:  Editing IntuiTexts for the window
  130.     -:  Editing, loading and saving of colors (ILBM)
  131.     -:  Fully mouse and keyboard controled
  132.     -:  Generation of complete routines in either C or Assembly
  133.     -:  Generation of "RAW" Assembly source (No headers necessary)
  134.     -:  Generation of "static" data
  135.     -:  Binary saving for later loading and editing
  136.     -:  The possibilty to save powerpacker __CRUNCHED!__ binaries.
  137.     -:  The ability to print a status report.
  138.     -:  Multiple windows
  139.     -:  User selectable font
  140.     -:  The editing of "DRIPENS" (what gives OS 2.0 that special look)
  141.     -:  The possibility to change screen resolution while editing
  142.     -:  The possibility to edit "BevelBoxes"
  143.     -:  Editing in a user-definable grid
  144.     -:  The editing of minimal window border offsets
  145.     -:  Easy gadget alignment and spacing
  146.     -:  The generation of font-adaptable code
  147.     -:  etc. etc. etc........
  148.  
  149.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  150.  » 5) Requirements                                                         »
  151.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  152.  GadToolsBox was programmed with DICE C v2.06 (Thanks Matt) on an Amiga 2500
  153.  Kickstart  V37.175  Workbench  V37.67  with  7 MB  memory  +  ECS  +  A2630
  154.  accelerator card + 52 MB harddisk. It should however run happely on  a 1 MB
  155.  machine without a harddisk and special chips. It MUST have Kickstart  V37++
  156.  and Workbench  V37++.    A  C  Compiler  ( try registering DICE )    and/or
  157.  an  assembler with the  2.0  headers  can  also  come  in  handy  when  you
  158.  try to compile/assemble  the  generated  source.   Note  however  that  the
  159.  program can generate assembler source which does not require the headers to
  160.  assemble. The  nofrag.library must be copied in the libs: directory of your
  161.  boot  disk.   GadToolsBox  must   also  have  the  OS 2.0  version  of  the
  162.  ReqTools.library in the libs: directory of your  BOOT disk.  When  you also
  163.  have the V35++ version of the  PowerPacker.library in  the libs:  directory
  164.  GadToolsBox can save/load crunched binaries.
  165.  
  166.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  167.  » 6) Starting GadToolsBox                                                 »
  168.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  169.  You can start GadToolsBox from either the Shell or the Workbench.  To start
  170.  GadToolsBox from the Shell you must type the following:
  171.  
  172.     GadToolsBox [filename]
  173.  
  174.  Where filename is an optional name of a previously  created file  which you
  175.  want to edit. To  start  GadToolsBox  from  the  workbench  you must either
  176.  double-click the program it's icon or one of the ".G" icons.  When you have
  177.  started PowerSource without any arguments a window appears in the middle of
  178.  the screen. With this window you can select  the Screen  type on which  you
  179.  want to edit  the  GadTools  user  interface.  In this window  you will see
  180.  the following gadgets:
  181.  
  182.     Available modes     » In this gadget you see a list of available display
  183.                           modes.  Just click on the  desired  display  mode.
  184.                           NOTE: The program currently  only  checks  for the
  185.                                 availability of  the  LORES,  HIRES,  SUPER-
  186.                                 HIRES,  PRODUCTIVITY  and  A2024  modes  for
  187.                                 the PAL, NTSC, VGA and A2024 monitors.  Also
  188.                                 the interlace modes are supported except for
  189.                                 the A2024 modes because they do not  support
  190.                                 interlace. THE VGA AND A2024 MODES  MAY ONLY
  191.                                 BE USED WITH VGA/MULTISYNC OR A2024 MONITORS
  192.                                 USAGE OF THESE DISPLAY MODES  ON A  STANDARD
  193.                                 RGB MONITOR MAY RESULT IN  SERIOUS DAMAGE TO
  194.                                 THE MONITOR.
  195.  
  196.     Min. Width          » This gadgets shows the  minimum  width the  screen
  197.                           can have.
  198.  
  199.     Min. Height         » This gadgets shows the  minimum height the  screen
  200.                           can have.
  201.  
  202.     Max. Width          » This gadgets shows the  maximum  width the  screen
  203.                           can have.
  204.  
  205.     Max. Height         » This gadgets shows the  maximum height the  screen
  206.                           can have.
  207.  
  208.     Width               » In  this  gadget  you  can  type  the width of the
  209.                           screen you want to have.   NOTE:  This  cannot  be
  210.                           smaller/larger than the values described above.
  211.  
  212.     Height              » In  this  gadget  you  can type  the height of the
  213.                           screen you want to have.   NOTE:  This  cannot  be
  214.                           smaller/larger than the values described above.
  215.  
  216.     Depth               » This slider gadget  lets  you  adjust  the  screen
  217.                           depth. The screen depth  determines the  amount of
  218.                           available colors.
  219.  
  220.                           Depth = 1, Colors = 2
  221.                           Depth = 2, Colors = 4
  222.                           Depth = 3, Colors = 8
  223.                           Depth = 4, Colors = 16
  224.                           Depth = 5, Colors = 32
  225.  
  226.     OK                  » When this gadget is clicked the  program will  try
  227.                           to open the desired screen and start  the editing.
  228.  
  229.     CANCEL              » Clicking on this gadget will  quit when you got in
  230.                           this window  upon program  startup  or cancel  the
  231.                           operation when you got in this window by selecting
  232.                           "New" from the "Project" menu.
  233.  
  234.  If everything went OK you now see the selected screen with a little  window
  235.  on it.
  236.  
  237.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  238.  » 7) Making a Gadget                                                      »
  239.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  240.  To make a gadget is quite simple. Move the mouse pointer to the place where
  241.  you want the top-left of the gadget to be. Now click the left  mouse-button
  242.  once and move the mouse. You'll see a  box  which will  size  according  to
  243.  your mouse moves.  When the box  is  the size  you want it  click the  left
  244.  mouse button again. Now a window pops up  which  allows  you  to  edit  the
  245.  gadget kind specifics ( refer to the "Gadget Kind Requester" for more info)
  246.  After you have edited the gadget specifics click  on  OK and the  gadget is
  247.  on the window ready to be played around with.  NOTE: When you are  making a
  248.  CheckBox, Mx or GetFile gadget the box appears after the first mouse-click.
  249.  This is because these kinds of gadgets have a fixed size.
  250.  
  251.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  252.  » 8) Program Menus                                                        »
  253.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  254.  GadToolsBox  uses  a set  of menus  to let you  control  the  program.  The
  255.  following describes each menu and it's items.
  256.  
  257.  »»» 8.1) The Project Menu
  258.  
  259.  About............. This opens a little window  with some  information about
  260.                     the copyright, author and memory  status.  Just click on
  261.                     the Continue gadget to get rid of it.
  262.  
  263.  New............... Reset's the program to the default deleting every change
  264.                     made sofar. When there are changes  made  that  are  not
  265.                     saved yet the program asks for confirmation.  NOTE:  All
  266.                     windows currently in memory will be deleted by this!!!
  267.  
  268.  Load.............. This opens the  FileRequester  in  which  you can select
  269.                     the file you want to load.  The  program can  only  load
  270.                     binaries created by GadToolsBox.  Any other kind of file
  271.                     will simply be refused. NOTE: When a requester  pop's up
  272.                     telling you  that the  file uses a  monitor  that  isn't
  273.                     available it means  that  either you have not added  the
  274.                     monitor by clicking on the specific monitor icon in  the
  275.                     MonitorStore drawer  of your  Extras disk  or you  don't
  276.                     have the ECS chips installed.  If this is  the  case the
  277.                     program just opens a screen in the standard resolution.
  278.  
  279.  Save.............. This will  save  the  GadTools interface to  the default
  280.                     file name. NOTE:  The default name is "unnamed.g".  When
  281.                     the crunch  gadget  is  enabled  (Preferences)  and  the
  282.                     powerpacker.library  was  opened  successfully a  window
  283.                     opens indicating the crunch progress. In this window you
  284.                     see the following things:
  285.  
  286.                         Crunched       » This indicates  the  percentage  of
  287.                                          the file crunched sofar in a  human
  288.                                          readable form and a graphical form.
  289.  
  290.                         Saved          » This indicates  the  percentage  of
  291.                                          the  file  saved by  the  crunching
  292.                                          sofar in a human readable form  and
  293.                                          a graphical form.
  294.  
  295.                         Stop           » Clicking on this gadget  will  stop
  296.                                          the crunching. NOTE: The file  will
  297.                                          still be  saved  only  it  won't be
  298.                                          crunched.
  299.  
  300.  Save As........... This  opens  the  FileRequester in  which you can select
  301.                     the  path  and  file  name  under  which   the  GadTools
  302.                     interface is saved.
  303.  
  304.  Generate Source...
  305.     C.............. This opens the  FileRequester in  which  you  can select
  306.                     the path and  file  name  under  which  the  generated C
  307.                     source will be saved.
  308.  
  309.     Assembler...... The same as C only the generated source will be in 68000
  310.                     Assembler.
  311.  
  312.  Preferences....... This opens the preferences window.  In this  window  you
  313.                     will see the following gadgets:
  314.  
  315.                     Static Data        » When  this is switched  on  the  C
  316.                                          source  will only  contain  static
  317.                                          data and  routines.  The assembler
  318.                                          will not export (XDEF) any globals
  319.  
  320.                     RAW Asm source     » When  this  is  switched   on  the
  321.                                          Assembler source generated can  be
  322.                                          assembled   without  the   OS  2.0
  323.                                          headers.
  324.  
  325.                     Coordinates        » If you want  the  mouse coordinates
  326.                                          to  be   displayed  constantly  you
  327.                                          should switch this gadget on. NOTE:
  328.                                          The   displayed   coordinates   are
  329.                                          relative  to  the  top-left  corner
  330.                                          of the window.
  331.  
  332.                     Write Icon         » When  this  is  switched  on  every
  333.                                          binary written by  GadToolsBox  has
  334.                                          an icon to accompany it.
  335.  
  336.                     Gen. OpenFont      » When this  is  switched  on and the
  337.                                          used font is a diskfont the  source
  338.                                          generator  automatically  generates
  339.                                          code that  opens/closes  the  font.
  340.                                          NOTE:   This has no  efect  if  the
  341.                                          "Adapt. Font" option (see below) is
  342.                                          turned on.
  343.  
  344.                     GZZ Adjust         » When  this  is   switched  on   the
  345.                                          program automatically  will  change
  346.                                          the  gadget   positions   when  the
  347.                                          WFLG_GIMMEZEROZERO  flag is  set or
  348.                                          cleared.   When  it's  on  and  you
  349.                                          switch  the WFLG_GIMMEZEROZERO flag
  350.                                          on  or  off  the  gadget  and  text
  351.                                          positions  will  visibly  stay  the
  352.                                          same.
  353.  
  354.                     Close WBench       » This allows you to let the  program
  355.                                          try to close the  workbench  screen
  356.                                          uppon startup. NOTE:  When  this is
  357.                                          selected and  you  press  "Use" the
  358.                                          program will also try to close  the
  359.                                          workbench screen.
  360.  
  361.                     Crunch             » When this gadget is checked and the
  362.                                          powerpacker.library V35+  has  been
  363.                                          opened   successfully   the   saved
  364.                                          binaries will be crunched. This can
  365.                                          save upto 85% of the original size.
  366.  
  367.                     Speedup Buffer     » This cycle gadget allows you to set
  368.                                          the preferred speedup  buffer  that
  369.                                          should be used by  the  powerpacker
  370.                                          library to crunch the binary files.
  371.  
  372.                     Crunch Depth       » With this cycle gadget you  can set
  373.                                          the crunch depth to use.
  374.  
  375.                     Adapt. Font        » When  this gadget  is  checked  the
  376.                                          source   generator   will  generate
  377.                                          source  that  automatically  adapts
  378.                                          the  gadget,  bevel-box  and window
  379.                                          sizes and positions  to the  active
  380.                                          font. NOTE: When this  is  switched
  381.                                          on the text's added to  the  window
  382.                                          will  __NOT__  be  generated.  Also
  383.                                          when   this  is  selected  you  are
  384.                                          forced to use the  topaz 8  font to
  385.                                          create your user interface.
  386.  
  387.                     Use Amiga.Lib      » When  this   is  switched  on   the
  388.                                          assembler source generator  creates
  389.                                          XDEFs to the  _LVO  table  from the
  390.                                          amiga.lib   instead  of   using the
  391.                                          constants normally generated.
  392.  
  393.                     Use SysFont        » When   this   is  switched  on  the
  394.                                          generated font adaptive source will
  395.                                          use the system default font instead
  396.                                          of the screen font.
  397.  
  398.                     Overwrite          » With  this  switch  on  GadToolsBox
  399.                                          won't pop up the requester  telling
  400.                                          you that a file you want to save to
  401.                                          already exists.   Instead  it  will
  402.                                          overwrite the file immediatly.
  403.  
  404.                     ASL FReq           » When   this    is    switched    on
  405.                                          GadToolsBox   will   use  the   ASL
  406.                                          FileRequester which  enables you to
  407.                                          use the  "Magic File Requester" and
  408.                                          other  sorts  of  ASL  patches  you
  409.                                          desire.
  410.  
  411.                     Pragmas            » This   will   tell   the  C  Source
  412.                                          Generator  to  include  the  pragma
  413.                                          headers to.   Note however that the
  414.                                          "xxx_pragmas.h" are included.  With
  415.                                          the   Aztec  5.2a   compiler  these
  416.                                          headers are called "xxx_lib.h".  In
  417.                                          the next release  this will  be  an
  418.                                          option.
  419.  
  420.                     Save               » Opens the  FileRequester  in  which
  421.                                          you can select the  path  and  name
  422.                                          under  which  the  preferences  are
  423.                                          saved.
  424.  
  425.                     Load               » Opens  the  FileRequester  in which
  426.                                          you   can   select   a  GadToolsBox
  427.                                          preferences file to load.
  428.  
  429.                     Use                » This tells GadToolsBox to  use  the
  430.                                          preferences you have set.
  431.  
  432.                     CANCEL             » This cancels the operation.
  433.  
  434.  Close Workbench... This will try to close the workbench screen so  that you
  435.                     can use the memory it took up. When this item reads Open
  436.                     Workbench it will try to open the Workbench screen again
  437.  
  438.  Quit.............. This will quit the program after asking for confirmation
  439.  
  440.  »»» 8.2) The Gadgets Menu
  441.  
  442.  In this menu some items will ask you to click a gadget to perform a  certain
  443.  action.  When  you  accidentally  activated one of those items you can abort
  444.  the  routine by pressing the  ESC  (Escape)  key  when  the  question "CLICK
  445.  GADGET.."  pops up  in the  screen  title  bar or  when you are dragging the
  446.  rubber-band box.
  447.  
  448.  Kind.............. This item has the  program  supported  gadget  kinds  as
  449.                     sub-items attached to it. Selecting  any of  these  sub-
  450.                     items will change the editing  for  that  gadget   kind.
  451.                     The first kind "GETFILE" is  a  custom  gadget which  is
  452.                     the same as the gadget which you find in the  "Fountain"
  453.                     program left of the filename gadgets. This gadget should
  454.                     be used to let the user open the FileRequester to select
  455.                     the file/path instead of typing it in the string gadget.
  456.  
  457.  Move a gadget..... This asks you to click on the gadget you  want to  move.
  458.                     When you click on a gadget a box  is drawed  around  it.
  459.                     Just move the box to where you want it and click on  the
  460.                     left mouse-button to confirm the place.
  461.  
  462.  Size a gadget..... This asks you to click on the gadget that  you  want  to
  463.                     re-size. When you click on a  gadget  a  box  is  drawed
  464.                     around the gadget. Just move  the mouse  to  adjust  the
  465.                     size of the box and click  on the  left  mouse-button to
  466.                     confirm  the  size.  NOTE:  The  minimum  possible  size
  467.                     depends on the gadget kind and the font size.
  468.  
  469.  Copy a gadget..... This ask you to click on the  gadget  you want  to copy.
  470.                     Clicking on the gadget you want to copy will draw  a box
  471.                     around the gadget which  you must  drag  to it's  place.
  472.                     Just click on  the  left  mouse-button to  confirm  it's
  473.                     place.
  474.  
  475.  Delete a gadget... This asks you to click on the gadget you want to delete.
  476.                     When you click on  the  gadget  to  delete  it  will  be
  477.                     removed and deallocated.
  478.  
  479.  Edit a gadget..... This  asks  you to click on the gadget you want to edit.
  480.                     Then the window for the specific  kind  of  gadget  will
  481.                     open.  Please  refer  to  the  "Gadget  Kind  Requester"
  482.                     chapter for more information about these windows.
  483.  
  484.  Join.............. This first asks you to click on a  ListView  gadget  you
  485.                     want to join. Then the program asks you to click on  the
  486.                     string gadget you want to join with the ListView gadget.
  487.                     Then the routine joins the  two gadgets  together.  This
  488.                     joining means that the String gadget will be filled with
  489.                     the  entry  name of a  clicked  entry  in  the  ListView
  490.                     gadget. NOTE:  Due to a bug (or something)  the GadTools
  491.                     library requires the String Gadget  to  be  of  the same
  492.                     Width as the ListView gadget. This is done automatically
  493.                     by  the  program  and  it  cannot  be  stopped.     Also
  494.                     the  GadTools  library  will  force  the  string  gadget
  495.                     directly  below  the  ListView gadget.  This also cannot
  496.                     be stopped.
  497.  
  498.  Split............. This will ask you to click on a Joined gadget.  Now  you
  499.                     can click either  the  joined  ListView  gadget  or  the
  500.                     joined String Gadget and they will be split. NOTE: After
  501.                     the Gadgets has been split the string Gadget  returns to
  502.                     the place where it has been originally drawn.
  503.  
  504.  Align Left........ This asks you to click on the gadget that has  the  left
  505.                     edge you want other gadgets to have. When you click on a
  506.                     gadget the program asks you to select the  gadgets  that
  507.                     must get the same left-edge of the  gadget  you  clicked
  508.                     first. Each time you click on a gadget the  gadget  will
  509.                     get a box drawn around it. When you click it  again  the
  510.                     box will disappear again. When the box is there it means
  511.                     that the gadget will be aligned.   When you are done you
  512.                     can  either press  ESC  to cancel or F1 to confirm. When
  513.                     F1 is pressed  all  gadget you have  selected  to  align
  514.                     will have the same left-edge.
  515.  
  516.  Align Right....... The same as "Align Left"  only the gadget  right-edge is
  517.                     used to align the gadgets.
  518.  
  519.  Align Top......... The same as "Align Left"  only  the  gadget  top-edge is
  520.                     used to align the gadgets.
  521.  
  522.  Align Bottom...... The same as "Align  Left" only the gadget bottom-edge is
  523.                     used to align  the gadgets. NOTE: This may not work  for
  524.                     ListView and Palette gadgets because GadTools sizes this
  525.                     gadget in the area given by you when first drawed.  This
  526.                     means that the gadget is almost always smaller than  you
  527.                     have drawn it.
  528.  
  529.  Close Size........ This does the same  as the  "Align"  routines  mensioned
  530.                     above  only  this  time  it  will  clone the size of the
  531.                     gadget. The MX, CHECKBOX and GETFILE  gadgets  will  not
  532.                     be affected by this. Only gadgets of the same  kind   as
  533.                     the first gadget clicked will  be  re-sized.  All  other
  534.                     gadgets you clicked will not be re-sized.
  535.  
  536.  Set X Spacing..... This will pop up a requester in which you  can  set  the
  537.                     size in pixels of the horizontal spacing of the gadgets.
  538.                     When the number has been entered you must  click  on the
  539.                     gadgets which must have the  spacing  requested.    Just
  540.                     press "F1" to confirm and "ESC" to cancel.
  541.  
  542.  Set Y Spacing..... The same  as  with  "Set X Spacing"  only  the  vertical
  543.                     positions are affected.
  544.  
  545.  »»» 8.3) The Window Menu
  546.  
  547.  New Window........ This will add a new window to  the  windows  already  in
  548.                     memory. NOTE:  Only the  currently  selected  window  is
  549.                     visible on the screen.
  550.  
  551.  Delete Window..... This will pop-up a window in which you must  select  the
  552.                     window you want to delete. The following gadgets  are in
  553.                     the window.
  554.  
  555.                     ListView gadget   » This  gadget   lists   the   windows
  556.                                         currently in memory. Just select the
  557.                                         name  of  the  window  you  want  to
  558.                                         delete.
  559.  
  560.                     OK                » Clicking on this gadget will  delete
  561.                                         the selected  window  including  all
  562.                                         gadgets, menus, texts and boxes that
  563.                                         where attached to it.
  564.  
  565.                     CANCEL            » This will cancel the operation.
  566.  
  567.  Other Window...... This brings up the  window-selector again  in which  you
  568.                     can select the window you want to edit.
  569.  
  570.  Edit Data......... This brings up a small requester  in which  you can  set
  571.                     some data for the current window. In the  requester  the
  572.                     follwing gadgets can be found:
  573.  
  574.                     Project name     » In  this  gadget  you  can  give  the
  575.                                        window a name. You  should  name  all
  576.                                        windows so  it's  easy to  keep  them
  577.                                        appart.  NOTE: This name  is used  by
  578.                                        the source generator.
  579.  
  580.                     Start ID from    » In  this  gadget  you  can  type  the
  581.                                        GadgetID  from  which  you  want  the
  582.                                        program to start  numbering the  ID's
  583.                                        of the gadgets. This can come in very
  584.                                        handy  if  you plan  to make  windows
  585.                                        that share a global IDCMP port.
  586.  
  587.                     Min X Size       » In these gadgets  you  can  type  the
  588.                     Min Y Size       » minimum/maximum dimensions  that  the
  589.                     Max X Size       » can  be  sized  to  with  the  sizing
  590.                     Max Y Size       » gadget.   The  program  will  try  to
  591.                                        prevent  you  from   entering   wrong
  592.                                        dimensions.  NOTE: The tags for these
  593.                                        positions will only be generated when
  594.                                        the window has a sizing gadget.
  595.  
  596.                     OK               » This will set the desired changes.
  597.  
  598.                     CANCEL           » This will cancel the operation.
  599.  
  600.  Print Info........ This will open the Project Selection window  again.  Now
  601.                     you can select the project of  which you  want to  print
  602.                     the  information  or  click  on  OK  right away to get a
  603.                     printout of all projects.  In the  printout  the  gadget
  604.                     id's, gadget array constants, number  of gadgets  kinds,
  605.                     number of menus,  number  of  texts  and the  number  of
  606.                     BevelBoxes are listed.   GadToolsBox first checks to see
  607.                     if your printer is online and has paper before it starts
  608.                     to print the projects. Note however that the  this check
  609.                     only works with parallel printers.
  610.  
  611.  Edit Flags........ This opens a requester in  which  all window  flags  are
  612.                     listed using CheckBox gadgets. Just (de)select the flags
  613.                     you want. Clicking on OK will set these flags and CANCEL
  614.                     cancels  the  operation.   NOTE:  Only  the  SIZEGADGET,
  615.                     DRAGBAR,     DEPTHGADGET,    CLOSEGADGET,    SIZEBRIGHT,
  616.                     SIZEBBOTTOM,  GIMMEZEROZERO,   BORDERLESS  and  BACKDROP
  617.                     flags are (un)set on  the edit  window. The rest  of the
  618.                     flags will  only turn up in  the  generated source code.
  619.                     NOTE: When you set the WFLG_BACKDROP flag in the  window
  620.                           The program will automatically re-size the  window
  621.                           to the same size as the current screen.    You can
  622.                           switch the size gadget on or off by  pressing  the
  623.                           F10 key while editing.
  624.  
  625.  Edit IDCMP........ This opens a requester in which all window  IDCMP  flags
  626.                     are listed using CheckBox gadgets.  Just  (de)select the
  627.                     flags you want. Clicking on OK will set these flags  and
  628.                     CANCEL  cancels  the  operation.   NOTE:   The  GadTools
  629.                     specific  IDCMP  flags  will  always be set according to
  630.                     the kind of gadgets on the window.
  631.  
  632.  Edit Tags......... This will open a window in  which  some  special  window
  633.                     tags can  be  edited.  In  the  window  you'll  see  the
  634.                     following  gadgets:
  635.  
  636.                     InnerWidth   » When   this   gadget   is  selected   the
  637.                                    generated    source    will    use    the
  638.                                    WA_InnerWidth Tag instead of the WA_Width
  639.                                    Tag. The value next to the gadget  is the
  640.                                    current window InnerWidth.
  641.  
  642.                     InnerHeight  » When   this   gadget   is  selected   the
  643.                                    generated    source    will    use    the
  644.                                    WA_InnerHeight   Tag   instead   of   the
  645.                                    WA_Height Tag.  The  value  next  to  the
  646.                                    gadget is the current window InnerHeight.
  647.  
  648.                     MouseQueue   » When this gadget is  selected the  source
  649.                                    will contain the  WA_MouseQueue  tag.  In
  650.                                    the  integer  gadget  next to this gadget
  651.                                    you can type the  amount of MouseQueue's.
  652.                                    NOTE: This value cannot be smaller than 1
  653.  
  654.                     RptQueue     » When this gadget is  selected the  source
  655.                                    will contain the  WA_RptQueue tag. In the
  656.                                    integer gadget  next  to  this gadget you
  657.                                    can type the amount of RptQueue's.  NOTE:
  658.                                    This value cannot be smaller than 1.
  659.  
  660.                     AutoAdjust   » Selecting this will cause  the  generated
  661.                                    source to contain the  WA_AutoAdjust tag.
  662.  
  663.                     Zoom         » When this gadget is selected the  WA_Zoom
  664.                                    Tag is generated in the source  code.  In
  665.                                    the Left, Top, Width, Height gadgets  you
  666.                                    can  type  the   Window  it's   alternate
  667.                                    positions.   NOTE:  This  gadget  is only
  668.                                    enabled when the window sizing  gadget is
  669.                                    turned off. This can be done in the "Edit
  670.                                    Flags" requester.
  671.  
  672.                     Default Zoom » This will tell  GadToolsBox  to  generate
  673.                                    source   that  will  calculate  the  zoom
  674.                                    positions at run time. The Zoom positions
  675.                                    will be the same as  the  Zoom  positions
  676.                                    of the preferences programs.   NOTE: This
  677.                                    gadget is  only enabled  when the  window
  678.                                    sizing gadget is turned off.  This can be
  679.                                    done in the "Edit Flags" requester.
  680.  
  681.                     WindowTitle  » Type the Window title  in here.  If  this
  682.                                    Gadget is empty the WA_Title tag will not
  683.                                    be generated.
  684.  
  685.                     ScreenTitle  » Type the  Screen title in  here. If  this
  686.                                    Gadget is  empty the  WA_ScreenTitle  tag
  687.                                    will not be generated.
  688.  
  689.                     OK           » This will set  the  desired  changes  and
  690.                                    resume to editing.
  691.  
  692.                     CANCEL       » This will cancel the operation.
  693.  
  694.  Edit Grid......... This will open a window to edit the grid size. The grid,
  695.                     which is invisible, is used to let the gadgets be  moved
  696.                     and sized with a specific amount of pixels at  the time.
  697.                     This  can be VERY useful to  get your  gadgets the  same
  698.                     size and in line with eachother. If you for example have
  699.                     both the X and Y grid spacings on 4 the gadget-box  will
  700.                     size/move 4 pixels at the time but only  when the  mouse
  701.                     has moved four pixels from it's  previous  position.  If
  702.                     this sounds a bit confusing  you should  try it  out. It
  703.                     makes  it  a  hell  of a  lot  easier to  place/size the
  704.                     gadgets on the right spot.  In the grid window  you will
  705.                     see the following gadgets:
  706.  
  707.                     Grid X Size       :  Type the X spacing of  the grid  in
  708.                                          here. NOTE:  This may not  be  less
  709.                                          than 2 or more than 100.
  710.  
  711.                     Grid Y Size       :  Type the Y spacing of  the grid  in
  712.                                          here. NOTE:  This may not  be  less
  713.                                          than 2 or more than 100.
  714.  
  715.                     Grid On           :  When  this  gadgets is checked  the
  716.                                          grid is switched  on.
  717.  
  718.                     OK                :  Clicking on  this gadget  will  set
  719.                                          the desired grid changes.
  720.  
  721.                     CANCEL            :  This will cancel the  operation.
  722.  
  723.                     NOTE:  When the grid is switched on  all coordinates are
  724.                            updated according to the grid sizes!
  725.  
  726.  Edit Offsets...... This will open a window to edit the border offsets.  The
  727.                     border offsets are used to create a working space within
  728.                     the window borders. This means that if you have set  the
  729.                     horizontal offset to 4 and the vertical offset to 2  the
  730.                     gadgets cannot be moved/sized  closer than  4 pixels  to
  731.                     the window left and right borders and not closer  than 2
  732.                     pixels to the window top and bottom borders.
  733.  
  734.                     Horiz. offset     :  Type the offset in pixels you  want
  735.                                          to have  from the  left  and  right
  736.                                          window borders here. NOTE: This may
  737.                                          not be less than 0 or more than 20.
  738.  
  739.                     Vert. offset      :  Type the offset in pixels you  want
  740.                                          to have from  the  top  and  bottom
  741.                                          window borders here. NOTE: This may
  742.                                          not be less than 0 or more than 20.
  743.  
  744.                     Offset On         :  When  this  gadgets is checked  the
  745.                                          offsets are switched  on.
  746.  
  747.                     OK                :  Clicking on  this gadget  will  set
  748.                                          the desired offset changes.
  749.  
  750.                     CANCEL            :  This will cancel the  operation.
  751.  
  752.  Texts.............
  753.      Add a text.... This will open the  IntuiText  editor  window.  In  this
  754.                     window you'll find the following gadgets:
  755.  
  756.                     Enter Text   » In this gadget you must  type the  actual
  757.                                    text you want.
  758.  
  759.                     JAM1
  760.                     JAM2
  761.                     COMPLEMENT
  762.                     INVERSVID    » These four gadgets determine the drawmode
  763.                                    used to paint the text in the rastport.
  764.  
  765.                     FrontPen     » With this palette gadget  you can  select
  766.                                    the FrontPen (text) color  which is  used
  767.                                    to draw the text.
  768.  
  769.                     BackPen      » With this palette gadget  you can  select
  770.                                    the BackPen (background)  color  which is
  771.                                    used to draw the text.
  772.  
  773.                     OK           » This gadget will close the window and let
  774.                                    you position the text in the edit window.
  775.                                    Clicking on  the left  mouse-button  will
  776.                                    confirm the place.
  777.  
  778.                     CANCEL       » This will cancel the operation.
  779.  
  780.                     Now you must move the text with mouse to where you  want
  781.                     it and click the left mouse-button.  To get your text in
  782.                     The middle of the window horizontally you must move  the
  783.                     text to the vertical position you want it and  press the
  784.                     F1 key. Then the text will bo moved to the center of the
  785.                     window.
  786.  
  787.      Modify a text. This will put up the text selection window if  there was
  788.                     more than one text added. In this text selection  window
  789.                     you'll see the following gadgets:
  790.  
  791.                     Available Texts » In  this  ListView  gadget  the  texts
  792.                                       currently   in   memory   are  listed.
  793.                                       Clicking on the text will select it.
  794.  
  795.                     OK              » This will  select  the  text  for  the
  796.                                       operation that has to be done.
  797.  
  798.                     CANCEL          » This will cancel the operation.
  799.  
  800.                     Now the IntuiText Editor opens  with the  selected  text
  801.                     already  in it.  Now you can edit  the text the  way you
  802.                     want.
  803.  
  804.      Delete a text. This will put up the text selector  again if  more  than
  805.                     one text is added to the  window.  Just select  the text
  806.                     and it's gone. NOTE: When only one text is available the
  807.                     text is deleted immediately.
  808.  
  809.      Move a text... The text selector pops up again if.... Now you can  move
  810.                     the text around in the edit window.  Just  click on  the
  811.                     left mouse-button to  confirm it's  new  place.  You can
  812.                     center it with F1 ofcourse (see Add a text).
  813.  
  814.  BevelBoxes........
  815.     Add BevelBox... When this item has been selected  the  program will  ask
  816.                     you to click on the place where you  want  the  top-left
  817.                     corner of the BevelBox. When clicked you can drag a  box
  818.                     just like when you are editing gadgets.  Just  click  on
  819.                     the left mouse button again to confirm  that the  box is
  820.                     the way you want it.    NOTE:  By  default  the  box  is
  821.                     "raised".  Look at the  "Flip BevelBox" item  to get  it
  822.                     "recessed."
  823.  
  824.     Move BevelBox.. This works the same as moving a gadget.
  825.  
  826.     Size BevelBox.. This works the same as sizing a gadget.
  827.  
  828.     Delete BevelBox This works the same as deleting a gadget.
  829.  
  830.     Flip BevelBox.. By default all created BevelBoxes are  "raised".  To get
  831.                     a BevelBox "recessed" you must select this item and then
  832.                     ( when  the  program  asks  you to )  click  inside  the
  833.                     box and it will be recessed.
  834.  
  835.  »»» 8.4) The Screen Menu
  836.  
  837.  Palette........... This will open the palette editor. In the palette editor
  838.                     you'll see the following gadgets:
  839.  
  840.                     Red         » With this slider gadget you can adjust the
  841.                                   Red intensity  of the  currently  selected
  842.                                   color.
  843.  
  844.                     Green       » With this slider gadget you can adjust the
  845.                                   Green intensity of the currently  selected
  846.                                   color.
  847.  
  848.                     Blue        » With this slider gadget you can adjust the
  849.                                   Blue intensity of the  currently  selected
  850.                                   color.
  851.  
  852.                     Colors      » This gadget consists of 2, 4, 8, 16 or  32
  853.                                   colored gadgets and a color indicator left
  854.                                   of it. Just click on the color you want to
  855.                                   edit to switch to editing that color.
  856.  
  857.                     OK          » This will close the Palette editor and set
  858.                                   the desired colors on the edit screen.
  859.  
  860.                     Load        » This opens the file requester in which you
  861.                                   can select the  name of an  IFF-ILBM  file
  862.                                   from which you wish to load the colors.
  863.  
  864.                     Save        » This opens the file requester in which you
  865.                                   can select  a name.  The  selected  colors
  866.                                   will then  be saved  to an  IFF-ILBM file.
  867.                                   The generated IFF-ILBM file is  compatible
  868.                                   with DPaint IV it's palette files.
  869.  
  870.                     Reset       » This will reset all  colors to  what  they
  871.                                   where before the palette editor opened.
  872.  
  873.                     CANCEL      » This will first reset all colors  and then
  874.                                   exit the palette editor.
  875.  
  876.  Get Font.......... This will  open the  FontSelector  for  you  to select a
  877.                     new font. To select a font you must first  click  on the
  878.                     desired font name and then enter or click on the desired
  879.                     font height. Clicking on Ok  will set the  font  on  the
  880.                     screen and clicking on Cancel will cancel the operation.
  881.                     NOTE: When the "Adapt. Font" switch  in the  Preferences
  882.                     window is switched on then this item cannot be selected.
  883.  
  884.  Set DriPens....... This will open the DriPen editor.  DriPens are the  pens
  885.                     which the system uses to  give that  special new  OS 2.0
  886.                     look  to  the  window  and  gadgets etc.  The  following
  887.                     gadgets are in the DriPen editor:
  888.  
  889.                     Pens        » This cycle gadget is  used to  select  the
  890.                                   DriPen you want  to  edit.  The  following
  891.                                   DriPens are available:
  892.  
  893.                                   DETAILPEN
  894.                                       This  is  the  same  as  the  standard
  895.                                       NewScreen detailpen.
  896.  
  897.                                   BLOCKPEN
  898.                                       This  is  the  same  as  the  standard
  899.                                       NewScreen blockpen.
  900.  
  901.                                   TEXTPEN
  902.                                       This is  the  pen  used  to  draw  the
  903.                                       gadget text and the Window title.
  904.  
  905.                                   SHINEPEN
  906.                                       This is  the  pen  used  to  draw  the
  907.                                       "light-side" of the gadget and  window
  908.                                       borders.
  909.  
  910.                                   SHADOWPEN
  911.                                       This is  the  pen  used  to  draw  the
  912.                                       "dark-side"  of the gadget and  window
  913.                                       borders.
  914.  
  915.                                   FILLPEN
  916.                                       This is the pen used to  backfill  the
  917.                                       gadget  when  it's  clicked   and  the
  918.                                       window border when it's active.
  919.  
  920.                                   FILLTEXTPEN
  921.                                       This is the pen used to draw the  text
  922.                                       of a clicked  gadget  and  the  Window
  923.                                       title of an active window.
  924.  
  925.                                   BACKGROUNDPEN
  926.                                       This   pen  is   used   to   fill  the
  927.                                       background of an unselected gadget.
  928.  
  929.                                   HIGHLIGHTTEXTPEN
  930.                                       This pen is used to draw the text of a
  931.                                       gadget   with   the  HighLight  switch
  932.                                       turned on.
  933.  
  934.                     Palette     » This gadgets contains the current   screen
  935.                                   colors. Clicking on a color  will set  the
  936.                                   currently displayed  DriPen  in the  Cycle
  937.                                   gadget to that colors.
  938.  
  939.                     OK          » Clicking  on  this  gadget  will  set  the
  940.                                   desired DriPens.
  941.  
  942.                     CANCEL      » This will cancel the operation.
  943.  
  944.  Edit Tags......... This will open the screen tags  window.  In  this window
  945.                     the following gadgets are located:
  946.  
  947.                     AutoScroll  » With this  gadget  checked  the  generated
  948.                                   source will contain the SA_AutoScroll tag.
  949.  
  950.                     Type        » This cycle gadget has the supported screen
  951.                                   types in it:
  952.  
  953.                                   CUSTOMSCREEN
  954.                                        The generated source will contain the
  955.                                        screen tags and data. The window will
  956.                                        use this screen to open on.
  957.  
  958.                                   WBENCHSCREEN
  959.                                        The generated source will not contain
  960.                                        the screen tags and data.  The window
  961.                                        will use the Workbench screen to open
  962.                                        on.
  963.  
  964.                                   CUSTOMSCREEN
  965.                                        The generated source will not contain
  966.                                        the screen tags and data.  The window
  967.                                        will use the default public screen to
  968.                                        open on.
  969.  
  970.                     Title       » In this  string  gadget you  can type  the
  971.                                   title of the screen when no windows on the
  972.                                   screen  are  activated.  NOTE:  When  this
  973.                                   gadget   is  empty  the  Tag  will  no  be
  974.                                   generated in the source.
  975.  
  976.                     OK          » This will set the desired tags.
  977.  
  978.                     CANCEL      » This will cancel the operation.
  979.  
  980.  Change Type....... This will pop up the Screen Type requester (See Starting
  981.                     GadToolsBox) which enables you to change the  screen you
  982.                     are working on. NOTE: When you have (for example) edited
  983.                     gadgets on a hires screen and you change the  resolution
  984.                     to a lores screen the gadgets that  are located  outside
  985.                     the lores  screen  range (gadget left-edge > 320) cannot
  986.                     be reached anymore (unless you switch back to the  hires
  987.                     screen ofcourse)!
  988.  
  989.  »»» 8.5) The Menus Menu
  990.  
  991.  Edit Menus........ This will open the Menu Editor  window in which  you can
  992.                     edit   a   complete  menu-strip.   Refer  to  the  "Menu
  993.                     Requesters" chapter for more information.
  994.  
  995.  Test Menus........ This will setup the menus,  items  and  subitems  to  be
  996.                     tested by you. When the message "TESTING MENUS!  ESC  TO
  997.                     QUIT..." is printed  in  the  screen title  bar you  can
  998.                     browse  through  the  menus  like  you  normally do. You
  999.                     should press the ESC (escape) key to resume to editing.
  1000.  
  1001.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1002.  » 9) Gadget Kind Requester                                                »
  1003.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1004.  GadToolsBox supports all gadget kinds which all have their  own  window  in
  1005.  which the gadget kind specifics can be edited. The following gadgets can be
  1006.  found in nearly all  gadget  kind  requesters  and are  there  for the same
  1007.  reason:
  1008.  
  1009.  Text           » In this gadget you can type the  text which  is  displayed
  1010.                   with the gadget.
  1011.  
  1012.  Label          » In this gadget you can type the source code label which is
  1013.                   used to define  some  important  values  in the  generated
  1014.                   source. Refer to the "Generated Source"  chapter  for more
  1015.                   information.
  1016.  
  1017.  Underscore     » When  this  gadget  is  selected   the  character  in  the
  1018.                   GadgetText preceeded  by a '_' will  be  underlined  which
  1019.                   specifies the keyboard shortcut.
  1020.  
  1021.  Disabled       » When this gadget is selected the gadget will be  disabled.
  1022.                   The gadget will only be disabled in the  generated source.
  1023.                   NOTE: Not all gadgets support this switch.
  1024.  
  1025.  High Label     » This tells that  the  GadgetText  must  be  drawn  in  the
  1026.                   highlight text color. NOTE Not  all  gadgets  support this
  1027.                   switch.
  1028.  
  1029.  Text Place     » This cycle gadget  determines  where that  gadget  text is
  1030.                   placed. The possibilities are IN, LEFT,  RIGHT,  ABOVE and
  1031.                   BELOW. NOTE: Only the Button gadget supports IN.
  1032.  
  1033.  OK             » This  gadget  will  add  the  gadget  with   the  selected
  1034.                   specifics to the edit window or set the desired changes.
  1035.  
  1036.  CANCEL         » This will cancel the operation.
  1037.  
  1038.  Following is a description of the extra specifics  of the  different gadget
  1039.  kinds supported by GadToolsBox.
  1040.  
  1041.  »»» 9.1) The CheckBox Gadget
  1042.  
  1043.  Checked       » When this gadget is switched on it tells that the gadget is
  1044.                  checked by default.
  1045.  
  1046.  »»» 9.2) The Integer Gadget
  1047.  
  1048.  MaxChars      » You must type the maximum possible digits plus one that may
  1049.                  be typed in the gadget. NOTE: This cannot be smaller than 2
  1050.  
  1051.  Number        » Type the default number in this gadget  that the  resulting
  1052.                  gadget has in it.
  1053.  
  1054.  »»» 9.3) The ListView Gadget
  1055.  
  1056.  Read Only     » When this gadget is selected the  ListView  Gadget  will be
  1057.                  read-only. NOTE: The ListView will only be read-only in the
  1058.                  generated source.
  1059.  
  1060.  ShowSelected  » When this gadget is selected the active (clicked)  entry in
  1061.                  the listview gadget will be shown below the listview gadget
  1062.                  NOTE: This option is only available  if the ListView  isn't
  1063.                  ReadOnly.
  1064.  
  1065.  Spacing       » Type the  extra  number  of  pixels  GadTools  must  insert
  1066.                  between the listview entries. NOTE: This  value  cannot  be
  1067.                  smaller than 0.
  1068.  
  1069.  Scr. Width    » Type the width of the scroller gadget next to the  ListView
  1070.                  gadget in here. NOTE: This value may not be smaller than 16
  1071.  
  1072.  Labels        » This is a ListView Gadget combined with a string gadget. In
  1073.                  the  string  gadget  you can  type  the  entries  that  the
  1074.                  listview must have. To edit an entry you  must first  click
  1075.                  on the entry in the listview and then edit the entry in the
  1076.                  string  gadget.  NOTE:  The  "!!ACTION GADGET!!"  entry  is
  1077.                  always in the list and cannot  be removed  or edited.  This
  1078.                  entry is necessary to keep the ListView  selectable  in the
  1079.                  program. This entry will ofcourse not showup in  the source
  1080.                  generated.
  1081.  
  1082.  ^ Remove ^    » This gadget enables you to remove  entries  from the  list.
  1083.                  Just click on the entry in the ListView gadget and  then on
  1084.                  this gadget and the entry is gone.
  1085.  
  1086.  »»» 9.4) The Mx Gadget
  1087.  
  1088.  Spacing       » In this gadget you can  type the  spacing  in  pixels  that
  1089.                  GadTools should insert between the items of the  MX gadget.
  1090.  
  1091.  Labels        » This is a ListView Gadget combined with a string gadget. In
  1092.                  the  string  gadget  you can  type  the  entries  that  the
  1093.                  mx must have.  To  edit  an  entry  you  must  first  click
  1094.                  on the entry in the listview and then edit the entry in the
  1095.                  string  gadget.  NOTE:  You must enter atleast two  entries
  1096.                  for the MX gadget.
  1097.  
  1098.  ^ Remove ^    » This gadget enables you to remove  entries  from the  list.
  1099.                  Just click on the entry in the ListView gadget and  then on
  1100.                  this gadget and the entry is gone.
  1101.  
  1102.  »»» 9.5) The Cycle Gadget
  1103.  
  1104.  Labels        » This is a ListView Gadget combined with a string gadget. In
  1105.                  the  string  gadget  you can  type  the  entries  that  the
  1106.                  cycle must have.  To edit an  entry you  must  first  click
  1107.                  on the entry in the listview and then edit the entry in the
  1108.                  string  gadget.  NOTE:  You must enter atleast two  entries
  1109.                  for the Cycle gadget.
  1110.  
  1111.  ^ Remove ^    » This gadget enables you to remove  entries  from the  list.
  1112.                  Just click on the entry in the ListView gadget and  then on
  1113.                  this gadget and the entry is gone.
  1114.  
  1115.  »»» 9.6) The Palette Gadget
  1116.  
  1117.  Width         » In  this  gadget  you  can  type  the  width  of  the color
  1118.                  indicator if you want one on the left of the gadget.  NOTE:
  1119.                  any value smaller than 9 will indicate that you do not want
  1120.                  a color indicator.
  1121.  
  1122.  Height        » In  this  gadget  you  can  type  the height  of  the color
  1123.                  indicator if you want one above the gadget. NOTE: any value
  1124.                  smaller than 9 will indicate that you  do not  want a color
  1125.                  indicator.
  1126.  
  1127.  »»» 9.7) The Scroller Gadget
  1128.  
  1129.  Immediate     » When   this   gadget  is   selected   you   will  hear  any
  1130.                  IDCMP_GADGETDOWN message through the window IDCMP port that
  1131.                  this gadget generates.
  1132.  
  1133.  RelVerify     » When   this   gadget  is   selected   you   will  hear  any
  1134.                  IDCMP_GADGETUP  message  through the window IDCMP port that
  1135.                  this gadget generates.
  1136.  
  1137.  Horizontal
  1138.  Vertical      » With this gadget you can determine whether this  gadget can
  1139.                  be moved horizontally or vertically.
  1140.  
  1141.  Top           » In this gadget  you  can  type  the  top  of the  area  the
  1142.                  scroller is used for.
  1143.  
  1144.  Total         » In this gadget you  can  type  the  total  of  the area the
  1145.                  scroller is used for.
  1146.  
  1147.  Visible       » In this gadget you  can type  the visible  part of the area
  1148.                  this scroller is used for.
  1149.  
  1150.  Arrows        » In this gadget you can type the size in pixels of an arrow.
  1151.                  NOTE: Specifying  a  value smaller  than 8  says you  don't
  1152.                  want arrows.
  1153.  
  1154.  »»» 9.8) The Slider Gadget
  1155.  
  1156.  Immediate     » When   this   gadget  is   selected   you   will  hear  any
  1157.                  IDCMP_GADGETDOWN message through the window IDCMP port that
  1158.                  this gadget generates.
  1159.  
  1160.  RelVerify     » When   this   gadget  is   selected   you   will  hear  any
  1161.                  IDCMP_GADGETUP  message  through the window IDCMP port that
  1162.                  this gadget generates.
  1163.  
  1164.  Horizontal
  1165.  Vertical      » With this gadget you can determine whether this  gadget can
  1166.                  be moved horizontally or vertically.
  1167.  
  1168.  Min           » In this gadget you can type the minimum value of the slider.
  1169.  
  1170.  Max           » In this gadget you can type the maximum value of the slider.
  1171.  
  1172.  Level         » In this gadget you can  type the  initial level  the slider
  1173.                  must have.
  1174.  
  1175.  Level Size    » In  this   gadget  you  can  type  the  maximum  amount  of
  1176.                  characters that may be used to print the slider level.
  1177.  
  1178.  Format        » A formatting string ala RawDoFmt() which  specifies the way
  1179.                  the slider level  should be  printed.  NOTE:  When  this is
  1180.                  omitted the slider level won't be printed.
  1181.  
  1182.  Lev. Place    » With this gadget you can specify where GadTools is to print
  1183.                  the slider level. The possibilities are LEFT,  RIGHT, ABOVE
  1184.                  and below.
  1185.  
  1186.  »»» 9.9) The String Gadget
  1187.  
  1188.  MaxChars      » You must type the maximum possible characters plus one that
  1189.                  may be typed in the gadget.  NOTE:  This cannot be  smaller
  1190.                  than 2.
  1191.  
  1192.  String        » Type the default string in this gadget  that the  resulting
  1193.                  gadget has in it.
  1194.  
  1195.  »»» 9.10) The Number Gadget
  1196.  
  1197.  NOTE: During the editing the number  gadget can  be selected  to be  moved,
  1198.        sized, deleted etc.   This  is  only  possible in  the  program!  The
  1199.        gadget generated in the source will NOT  respond to clicking  in  it!
  1200.        The NUMBER kind of gadget  is a  READONLY  gadget  which  is used  to
  1201.        display numbers.
  1202.  
  1203.  Border        » When this gadget is  checked  it  means  that a  "recessed"
  1204.                  border will be drawed around the gadget.
  1205.  
  1206.  Number        » In this gadget you can  type  the default  number  that the
  1207.                  gadget should display.
  1208.  
  1209.  »»» 9.11) The Text Gadget
  1210.  
  1211.  NOTE: During the editing  the  text  gadget can  be selected  to be  moved,
  1212.        sized, deleted etc.   This  is  only  possible in  the  program!  The
  1213.        gadget generated in the source will NOT  respond to clicking  in  it!
  1214.        The TEXT kind  of  gadget  is a  READONLY  gadget  which  is used  to
  1215.        display informative texts.
  1216.  
  1217.  Border        » When this gadget is  checked  it  means  that a  "recessed"
  1218.                  border will be drawed around the gadget. NOTE: When you did
  1219.                  not enter a text in the "Def. Text"  gadget the  border  is
  1220.                  switched on no matter what this gadget says.
  1221.  
  1222.  CopyText      » When this gadget is checked the gadtools.library will  make
  1223.                  it's own private copy of the text.
  1224.  
  1225.  Def. Text     » In this gadget you  can  type  the  default  text  that the
  1226.                  gadget should display.
  1227.  
  1228.  »»» 9.12) The Button Gadget
  1229.  
  1230.  Toggle        » When  this  gadget  is  switched  on  you will get a toggle
  1231.                  select gadget (on/off) gadget.   I've  done this by setting
  1232.                  the GACT_TOGGLESELECT  flag in  the  created  gadget.  This
  1233.                  probably isn't the "right" way to do  this but  I don't see
  1234.                  that it can harm either.
  1235.  
  1236.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1237.  » 10) Menu Requesters                                                     »
  1238.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1239.  GadToolsBox uses three (actually two) windows to let the user edit complete
  1240.  menu-strips. Following is a description of those windows.
  1241.  
  1242.  »»» 10.1) The Menu Requester
  1243.  
  1244.  This requester is used to edit  the menus.  In the  window you'll  see  the
  1245.  following gadgets:
  1246.  
  1247.  Menus         » This  listview  gadget  contains  the names  of  the  menus
  1248.                  currently in memory.  Below this ListView  gadget a  string
  1249.                  gadget is  located  which  is used  to  enter/edit the menu
  1250.                  names. To add a new menu to  the list  you must  enter it's
  1251.                  name in this string gadget and press return. To edit a menu
  1252.                  name you must  first  click on  the  name  in  the listview
  1253.                  gadget and then edit the name in the string gadget.
  1254.  
  1255.  Disabled      » This CheckBox gadget tells GadToolsBox whether you want the
  1256.                  menu to be disabled or not.
  1257.  
  1258.  ItemEd        » This gadget must be clicked when you want to add some items
  1259.                  to a menu. To do this you must first click on the menu name
  1260.                  in the listview gadget which you want to edit items for and
  1261.                  then click on this gadget.  If  all goes  well you  will be
  1262.                  presented with the "(Sub)Item Requester" (see below).
  1263.  
  1264.  Delete        » When you want to delete a menu you must click  on it's name
  1265.                  in the listview gadget and then click on this gadget.  Then
  1266.                  a requester pops up asking for confirmation. NOTE: Deleting
  1267.                  a menu with  items  attached to it  will also delete  those
  1268.                  items.
  1269.  
  1270.  DONE          » Clicking on this gadget will close the requester and resume
  1271.                  to gadget editing.
  1272.  
  1273.  »»» 10.2) The (Sub)Item Requester
  1274.  
  1275.  This requester  is used to  edit  (sub)items  for  a  specific   menu. This
  1276.  requester is the same for editing items and subitems. The following gadgets
  1277.  are in the window:
  1278.  
  1279.  (Sub)Items    » This  listview  gadget  contains  the names  of  the  (sub)
  1280.                  items currently attached to the menu.  Below  this ListView
  1281.                  gadget a string gadget is located  which is used  to  enter
  1282.                  /edit the (sub)item names. To add a new  (sub)item  to  the
  1283.                  list  you must  enter it's name  in this string  gadget and
  1284.                  press return. To edit a menu name you must  first  click on
  1285.                  the  name  in  the listview  gadget and then  edit the name
  1286.                  in the string gadget.
  1287.  
  1288.  Checkit       » This will turn the intuition  CHECKIT  flag on/off  for the
  1289.                  (sub)item.
  1290.  
  1291.  Disabled      » This CheckBox gadget tells GadToolsBox whether you want the
  1292.                  (sub)item to be disabled or not.
  1293.  
  1294.  Checked       » This will turn the intuition  CHECKED  flag on/off  for the
  1295.                  (sub)item.
  1296.  
  1297.  MenuToggle    » This will turn the intuition MENUTOGGLE flag on/off for the
  1298.                  (sub)item.
  1299.  
  1300.  ShortCut      » You can  add a  keyboard  shortcut  for  the  (sub)item  by
  1301.                  entering the shortcut key in this gadget. NOTE: The program
  1302.                  will detect it when you try to use a shortcut key that  you
  1303.                  have already used.
  1304.  
  1305.  BarLab        » When you click on this gadget a separator bar (NM_BARLABEL)
  1306.                  is inserted in the list automatically.
  1307.  
  1308.  SubEd        »  This  gadget  must be  clicked when  you  want to  add some
  1309.                  subitems to a item. To do this you must  first click on the
  1310.                  item name in the listview  gadget which  you want  to  edit
  1311.                  subitems for  and  then  click on  this gadget. If all goes
  1312.                  well the requester will switch to  subitems editing.  NOTE:
  1313.                  This gadget is disabled  when the  requester already  is in
  1314.                  the subitem mode.
  1315.  
  1316.  Delete        » When you want to delete a (sub)item you must click  on it's
  1317.                  name in the listview gadget  and then click on this gadget.
  1318.                  Then a requester  pops  up asking  for confirmation.  NOTE:
  1319.                  Deleting a item  with  subitems  attached to it  will  also
  1320.                  delete those subitems.
  1321.  
  1322.  DONE          » Clicking on this gadget will  close the  requester and  put
  1323.                  you back in the menu requester.
  1324.  
  1325.  NOTE: There is a possibility to set the MutualExclude  of an item but  this
  1326.  has a bug in it which I can't find. When you click on  the (sub)item  which
  1327.  must  do  the  excluding and you press the 'x' key you will see the message
  1328.  "DRAG-SELECT ITEMS TO EXCLUDE" in the title bar of the item ed window.  Now
  1329.  you must click the menu-button of the mouse and go to the menu.  Here's the
  1330.  bug..... YOU MUST KEEP THE MOUSE WITH THE RIGHT-BUTTON PRESSED ON  THE MENU
  1331.  FOR ABOUT 10-15 SECONDS BEFORE INTUITION  DECIDES TO DROP  THE  MENU ??????
  1332.  When the menu is down you must check the items that are to be  excluded and
  1333.  the mutual-exclude value will be set. To check several items you must click
  1334.  the left-mouse-button on each item whilst  holding  down  the  right mouse-
  1335.  button. If you know what  the bug is  please tell me about it so that I can
  1336.  fix it.
  1337.  
  1338.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1339.  » 11) The Generated Source                                                »
  1340.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1341.  The source output of GadToolsBox is devided into two  seperate  files.  The
  1342.  first file is a header (.h|.i) containing EXTERNS or XREF'S to the  data in
  1343.  the  generated main source and  CONSTANTS  for  the  gadget  ID's  and  the
  1344.  positions of the gadgets in the  Gadget  Array.  The  second  file  (.c|.s)
  1345.  (from here on refered to as "main file") contains all data  and routines to
  1346.  setup things. From here on when I refer to <Project_Name>  I mean  the name
  1347.  entered in  the "Edit Data" requester from the Window menu and when I refer
  1348.  to  <Gadget_Label> I mean the  name  you have typed  in the "Label"  gadget
  1349.  of one  of the  gadget kind requesters.  In  the  main  file  the following
  1350.  routines are generated:
  1351.  
  1352.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1353.    » long SetupScreen( void );                                         »
  1354.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1355.     This routine will open or lock the screen and get it's visual info.
  1356.     When requested (see Preferences Menu) this routine  will also  open
  1357.     the font. Also it willsetup the boopsi image for the GETFILE gadget
  1358.     when such a gadget is used.  This  routine  can  return  one of the
  1359.     following errors:
  1360.  
  1361.         0 = No errors.
  1362.         1 = Could not open or lock the screen.
  1363.         2 = Could not get the screen it's visual info.
  1364.         3 = Could not setup the GETFILE boopsi class.
  1365.         4 = Could not get a GETFILE boopsi object.
  1366.         5 = Could not open the font.
  1367.  
  1368.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1369.    » void CloseDownScreen( void );                                     »
  1370.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1371.     This routine will free the resources taken by "SetupScreen()".  You
  1372.     must still call this routine when  "SetupScreen()"  failed to close
  1373.     and free the resources that didn't fail to open!!!
  1374.  
  1375.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1376.    » long Open<Project_Name>Window( void );                            »
  1377.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1378.     There are as much of these routines as there are Project Windows in
  1379.     the file you have generated. These routines will setup the  gadgets
  1380.     and menus and open the window. These routines can return one of the
  1381.     following errors:
  1382.  
  1383.         0 = No errors.
  1384.         1 = Could not create a gadget context.
  1385.         2 = Error during the gadget creation.
  1386.         3 = Could not create the menus.
  1387.         4 = Could not open the window.
  1388.  
  1389.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1390.    » void Close<Project_Name>Window( void );                           »
  1391.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1392.     There are as much of these routines as there are Project Windows in
  1393.     the file you have generated. These routines will free all resources
  1394.     that the "Open<Project_Name>Window()" routine has taken.  You  must
  1395.     still call this routine if "Open<Project_Name>Window()" has failed!
  1396.  
  1397.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1398.    » void <Project_Name>Render( void );                                »
  1399.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1400.     Each Project Window which has texts and/or BevelBoxes  attached  to
  1401.     it will have a routine which renders these texts and/or  BevelBoxes
  1402.     in the window. This routine must also be called by the user program
  1403.     uppon  receiving a IDCMP_REFRESHWINDOW message at the  window port.
  1404.     When such a message  is received  this  routine   must  be   called
  1405.     between   the   GT_BeginRefresh()  and GT_EndRefresh() calls.  Here
  1406.     is a  small example of what I mean:
  1407.  
  1408.         while( 1 ) {
  1409.             WaitPort( Wnd->UserPort );
  1410.             while( imsg = GT_GetIMsg( Wnd->UserPort )) {
  1411.  
  1412.                 Class = imsg->Class;
  1413.                 GT_ReplyIMsg( imsg );
  1414.  
  1415.                 switch ( Class ) {
  1416.  
  1417.                     case    IDCMP_REFRESHWINDOW:
  1418.                         GT_BeginRefresh( Wnd );
  1419.  
  1420.                         <Project_Name>Render(); /* re-draw texts and boxes */
  1421.  
  1422.                         GT_EndRefresh( Wnd, TRUE );
  1423.                         break;
  1424.  
  1425.                     .....
  1426.                 }
  1427.             }
  1428.         }
  1429.  
  1430.  The main file also has the following globals defined  which are  shared  by
  1431.  all project windows:
  1432.  
  1433.     struct Screen *Scr;          A pointer to the opened/locked screen
  1434.     APTR           VisualInfo;   A pointer to the visual info
  1435.  
  1436.  The following globals are only  generated when the file contains gadgets or
  1437.  menus and when the OpenFont routine is generated and  when the window  must
  1438.  have a zoom gadget:
  1439.  
  1440.     struct Gadget   *<Project_Name>GList;  A pointer to the created gadgets
  1441.     struct Menu     *<Project_Name>Menus;  A pointer to the created menus
  1442.     WORD             <ProjectName>Zoom[4]; The window alternate positions
  1443.     struct TextFont *Font;       A pointer to the opened font
  1444.  
  1445.  Also  generated  are  pointers  for each project window  that is in memory.
  1446.  Also the window title is generated as a global pointer.   These pointer are
  1447.  generated as follows:
  1448.  
  1449.     struct Window   *<Project_Name>Wnd;    A pointer to the window;
  1450.     UBYTE           *<Project_Name>Wdt;    A pointer to the window title;
  1451.  
  1452.  Four words are generated for each window. These words  contain  the  window
  1453.  it's left and top-edge and the window it's width and  height. These globals
  1454.  are build as follows:
  1455.  
  1456.     UWORD       <Project_Name>Left;     Window left-edge
  1457.     UWORD       <Project_Name>Top;      Window top-edge
  1458.     UWORD       <Project_Name>Width;    Window width
  1459.     UWORD       <Project_Name>Height;   Window height
  1460.  
  1461.  These  words   should  be  changed  by  the  aplication  if  the  user  has
  1462.  re-sized   or re-positioned the window. This way when the window  is closed
  1463.  and  then re-opened  again it will be opened the size and  position  it had
  1464.  the last time  it was  open. Note: When the user has changed the window you
  1465.  _must_ substract the window top-border  size  from the window height before
  1466.  setting in the the "<Project_Name>Height" global. Here is a  little example
  1467.  of what I mean:
  1468.  
  1469.     while( 1 ) {
  1470.         WaitPort( Wnd->UserPort );
  1471.         while( imsg = GT_GetIMsg( Wnd->UserPort )) {
  1472.  
  1473.             Class = imsg->Class;
  1474.             GT_ReplyIMsg( imsg );
  1475.  
  1476.             switch( Class ) {
  1477.  
  1478.                 case    IDCMP_CHANGEWINDOW:
  1479.                     <Project_Name>Left   = Wnd->LeftEdge;
  1480.                     <Project_Name>Top    = Wnd->TopEdge;
  1481.                     <Project_Name>Width  = Wnd->Width;
  1482.                     <Project_Name>Height = Wnd->Height - Wnd->BorderTop;
  1483.                     break;
  1484.  
  1485.                 .....
  1486.  
  1487.             }
  1488.         }
  1489.     }
  1490.  
  1491.  Also the main  file contains  the Gadget  Array's for  each  project window
  1492.  which are define as follows:
  1493.  
  1494.  struct Gadget *<Project_Name>Gadgets[];
  1495.  
  1496.  To access the pointers in this array the program generates DEFINES or EQU'S
  1497.  in the header file which specify  the position  of a certan  gadget in  the
  1498.  array. These defines are build as follows:
  1499.  
  1500.  #define GDX_<Gadget_Label>
  1501.  
  1502.  Be   sure  that  the   "gadtools.library",   "intuition.library"  and   the
  1503.  "graphics.library" are all open BEFORE any of  the  generated  routines are
  1504.  called. When you use a diskfont and the "Gen. OpenFont" switch is on in the
  1505.  Preferences  window  the  "diskfont.library" must also be opened.  For  the
  1506.  assembler  source  the valid pointers to  these  libraries must  be  stored
  1507.  globally with  the  names "_GadToolsBase", "_IntuitionBase", "_GfxBase" and
  1508.  "_DiskfontBase"  otherwise  you  get  problems  linking.   When you use the
  1509.  GETFILE  gadget  you  must  also have   opened  the  "utility.library" with
  1510.  the base pointer  in a variable called "_UtilityBase".
  1511.  
  1512.  The generated source tries to be smart. With smart I mean that if you,  for
  1513.  example, have created five gadgets which are of the  same  size the  source
  1514.  generator will only  generate  the  setting of  the size  in the  NewGadget
  1515.  once using it on all five gadgets. The same goes for  all other  entries in
  1516.  the NewGadget structure.  The generated  source  will  _ALWAYS_  check  the
  1517.  screen  font  at run time  so  that the  gadgets, texts and bevel boxes are
  1518.  always placed at the correct border offsets in the window.
  1519.  
  1520.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1521.  » 12) The GetFile Boopsi Image                                            »
  1522.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1523.  When you use the GetFile gadget and you generate the  source  you  __MUST__
  1524.  link with the supplied object code "boopsi.o"!  This contains the code that
  1525.  will setup a private sub-class which will handle the drawing of the GetFile
  1526.  Image. The source of "boopsi.o"  has been included with the distribution so
  1527.  you  can  see  how  it  has  been  done.   The code of  the boopsi image is
  1528.  re-entrant so it can be used in residentable  programs and  libraries  etc.
  1529.  Please note  that the Boopsi  image is  _not_ public  domain.  It is freely
  1530.  distributable  and  remains  © Copyright 1992 Jaba Development.    You  may
  1531.  however distribute it with your  program no matter  wether your  program is
  1532.  public domain, freeware, shareware or commercial.
  1533.  
  1534.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1535.  » 13) Adapt Font                                                          »
  1536.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1537.  When the "Adapt. Font" option in the Preferences window is switched  on the
  1538.  source  generator  will  create  source  that  will automatically adapt the
  1539.  gadget, bevel-box and window sizes and positions to the  active  font.  The
  1540.  resulting  source  also checks  to see wether or not the window will fit on
  1541.  the screen.    If  it  doesn't  fit  anymore the topaz 8 font will be used.
  1542.  GadToolsBox  forces  you  to  use  the  topaz  8 font  when creating a user
  1543.  interface with the "Adapt. Font" option on because  when  you  would have a
  1544.  larger font and you would (for example)  create  a  SCROLLER  of  10 pixels
  1545.  high  and  at  run  time  a  smaller  font  is  active  the  routine   that
  1546.  re-calculates the gadget  could make the SCROLLER to small.
  1547.  
  1548.  In the generated source a routine called "ComputeFont()" is generated. This
  1549.  routine calculates the font  size  and it will  check if the  window  still
  1550.  fit's on the screen using the font. If the window does not fit anymore this
  1551.  routine will automatically switch to the topaz 8 font.      This routine is
  1552.  always  static  and  you  should  never  need  to  call  this yourself. The
  1553.  generated assembler source with the  "Font. Adapt" option  on  requires the
  1554.  "utility.library"  open  with  it's  base   pointer  in  a  global   called
  1555.  "_UtilityBase". This because the source requires the  32 bit math  routines
  1556.  from  that  library.  Two  kinds  of  adaptable  source  can  be generated.
  1557.  The first kind uses the font of the screen on  which the  window opens  and
  1558.  the second, when the "Use SysFont" switch in the preferences window is  on,
  1559.  will use the system default font. Also two routines called "ComputeX()" and
  1560.  "ComputeY()"  are  generated  which  re-calculate  the  horizontal  (X) and
  1561.  vertical (Y) values for the gadgets, bevel-boxes and windows.
  1562.  
  1563.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1564.  » 14) Notes                                                               »
  1565.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1566.  At this time there really isn't much to say about the program. It is a tool
  1567.  that  will  ( or atleast should )  save  you a lot  of time  in creating  a
  1568.  GadTools user interface for your programs.   I've done some  testing  using
  1569.  "Enforcer" and "MungWall" and I didn't find enforcer hits  and the  program
  1570.  (as far as I know) handles low memory conditions well.  When  a big font is
  1571.  used in the program it can  happen  that  some  requesters won't fit on the
  1572.  screen anymore. Intuition will automatically resize  the requester  so that
  1573.  it will fit  on the screen but some gadgets might not be reachable anymore.
  1574.  When  you want to save the binaries crunched you must copy the V35+ version
  1575.  of the PowerPacker.library  in your libs: directory  and you  must setup T:
  1576.  as a logical device.  To do this you must have something like  this in your
  1577.  startup-sequence:
  1578.  
  1579.         MakeDir RAM:T
  1580.         Assign  T:  RAM:T
  1581.  
  1582.  If someone wants to translate this manual into her/his language  permission
  1583.  is herby granted. The only thing I ask is that you  send me a  copy of  the
  1584.  translation  so that  I can  distribute  it with  the next  release of  the
  1585.  program. When you use a screen bigger  than the  normal display  mode  size
  1586.  and you are on a part of the screen that  doesn't display the  screen  it's
  1587.  top-left corner you will not see the title  messages  GadToolsBox  displays
  1588.  sometimes. So if gadtoolsbox doesn't seem to respond to your input  move to
  1589.  the top-left of the screen and read the  message.   Although  this  program
  1590.  itself does not follow all the rules layed out in the "User Interface Style
  1591.  Guide" I still strongly suggest you try to follow the rules  layed  out  in
  1592.  in that guide.  From  v1.3  on  GadToolsBox  has an embedded version string
  1593.  in the "User Interface Style Guide" format.  When  submitting  a bug-report
  1594.  please tell me the version of the GadToolsBox program you are using.   This
  1595.  can be established by typing "Version GadToolsBox" in the shell.
  1596.  
  1597.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1598.  » 15) Credit                                                              »
  1599.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1600.  I would like to thank the following people for their  many suggestions  and
  1601.  bug reports. Without these people GadToolsBox wouldn't be where it is today
  1602.  
  1603.                      ________    T H A N K S    ________
  1604.  
  1605.     Wolfgang Küting,    Kasper Peeters,  Stefan Becker,      Nico Fraçois,
  1606.     Sebastiano Vigna,   Andreas Jung,    Ken Simpson,        Kai Bolay,
  1607.     Ola Olsson,         Richard Waspe,   Carsten Feilhaber,  Garry Glendown
  1608.     Jochen Kreimer,     Georg Hessmann,  Martin Laubach
  1609.  
  1610.  And special thanks to:
  1611.  
  1612.     Matthew Dillon      For his incredible Dice ( you should register.... )
  1613.     Stefan Becker       For sending me my Dice update
  1614.     Fred Fish           For the huge pile of AmigaLibDisks he produces
  1615.     Huub Schuivers      For installing 2MB on my A2630 card
  1616.     Andreas Jung        For his donation
  1617.     Ingo Sabel          For his donation
  1618.     Frederic Hahn       For the bottle of white wine
  1619.  
  1620.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1621.  » 16) __IMPORTANT__                                                       »
  1622.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1623.  Due  to  a  bug in  the  previous  releases  of GadToolsBox (v37.79--) it's
  1624.  possible that you have binary files which contains  a  corrupt  menu strip.
  1625.  This because the program counted sub-items for  items which didn't have any
  1626.  sub-items.  This would cause the binary file routine to write the sub-items
  1627.  that  didn't exist to the file.  To fix  these files  you must load them in
  1628.  this version of GadToolsBox and go  into the  Menu Editor  ("Edit Menus..."
  1629.  under the  "Menus" menu). Now select the first menu and click on  "ItemEd".
  1630.  Now   select  each   non-NM_BARLABEL  item  which  should  _NOT_  have  any
  1631.  sub-items  and press "SHIFT+E". Each time the requester pops-up and you are
  1632.  sure that  you have selected the right item you  should click  on "Yes"  in
  1633.  the  requester.  You must repeat this action for all menus and  then  (when
  1634.  you are finished) save the file again.  I know  that this  could  mean some
  1635.  work with big menus  but I think it's better to do  this than to  re-create
  1636.  the  whole  user-interface. I'm very  sorry for this  bug but it was one of
  1637.  those  famous ones  that only occured sometimes.   NOTE:  BINARIES  CREATED
  1638.  WITH  V1.0  OF  GADTOOLSBOX  CANNOT  BE  READ/REPAIRED  BY  THIS VERSION OF
  1639.  GADTOOLSBOX.  ONLY THE BINARIES CREATED WITH V1.2++ CAN BE READ/REPAIRED BY
  1640.  THIS VERSION OF GADTOOLSBOX.
  1641.  
  1642.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1643.  
  1644.  Bug reports,  suggestions,  postcards,  flames,  criticism,  contributions,
  1645.  ideas, gifts, opinions about the new U2 cd 'Achtung Baby', how  to  make  a
  1646.  million, inspirations, flowers,  etc., etc., etc........... to:
  1647.  
  1648.  Jan van den Baard                        Fido: 2:500/29 (Jan van.den.Baard)
  1649.  Bakkerstraat 176
  1650.  3082 HE, Rotterdam
  1651.  Holland
  1652.  
  1653.       »» "Trust me. I know what I'm doing." -: Sledge Hammer         ««
  1654.       »» "Life sucks"                       -: Al Bundy              ««
  1655.       »» "Hasta la vista, Baby"             -: The Terminator        ««
  1656.       »» "It's better to dream about an Amiga than to have an Atari" ««
  1657.